package com.tjbank.cssys.api;

import com.tjbank.cssys.dto.OrganDTO;
import com.tjbank.cssys.dto.UserDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * 机构管理
 * 
 * Package : com.tansun.magicube.iam.api
 * 
 * @author -- lijiangtao 2020年7月13日 上午10:45:21
 */
public interface OrganService {

	/**
	 * 新增机构
	 * 
	 * @param organDTO
	 * @return
	 * @author -- lijiangtao 2020年6月20日 下午4:39:32
	 */
	Object addOrgan(OrganDTO organDTO);

	/**
	 * 删除机构
	 * 
	 * @param nodeId
	 * @author -- lijiangtao 2020年6月1日 下午4:25:29
	 */
	Integer deleteOrgan(String nodeId);

	/**
	 * 更新机构
	 * 
	 * @param organizationDTO
	 * @return
	 * @author -- lijiangtao 2020年6月20日 下午4:59:44
	 */
	Integer updateOrgan(OrganDTO organDTO);

	/**
	 * 查询机构信息list-->tree
	 * 
	 * @return
	 * @author -- lijiangtao 2020年7月14日 下午4:34:17
	 */
	List<OrganDTO> organTreeList(OrganDTO organDTO);

	/**
	 * 根据机构节点分页查询用户信息
	 * 
	 * @param nodeId
	 * @param pageable
	 * @return
	 * @author -- lijiangtao 2020年7月27日 下午5:58:12
	 */
	Map<String,Object> queryUserByNodeId(String nodeId, Pageable pageable);

	/**
	 * 根据租户Code分页查询机构信息
	 * 
	 * @param organDTO
	 * @param pageable
	 * @return
	 * @author -- lijiangtao 2020年7月25日 下午11:56:59
	 */
	Page<OrganDTO> queryOrganByTenantCode(OrganDTO organDTO, Pageable pageable);

	/**
	 * 角色授权 ----> 数据权限
	 * 
	 * @param organDTO
	 * @return
	 * @author -- lijiangtao 2020年7月31日 下午12:47:09
	 */
	List<OrganDTO> organOrgTreeByTenantCode(OrganDTO organDTO);


	public Map<String,String> getCountByCodeOrName(Map<String,String> map);


}
